Computer systems which provide stereo sound capability often do so by utilizing an audio card for controlling audio devices (for example, two speakers in conjunction with suitable amplifiers), an audio device driver (also called a sound driver) for controlling the audio card, and an operating system which supports stereo sound, for interacting with both the device driver and stereo application programs.
Typically the application accesses audio data stored in digital form. The application breaks a sound sample into a series of sections of digital audio data, which it stores temporarily in a series of RAM buffers. The device driver, in conjunction with the operating system, loads the contents of these buffers into an internal buffer within the audio card. The audio card in turn contains a CODEC (coder/decoder) facility for converting the data within this buffer into analog form which is then played by the speakers.
The audio card can be added to the computer by means of an expansion slot, or can form part of a personal computer's motherboard.
Typically, the hardware and software described above can also support stereo recording. In such a system, two microphones are attached to the audio card and provide analog audio input, which is digitized by the CODEC Facility. The application sends instructions, using the operating system component, to the sound driver for reading this digitized audio data and copying it to buffers managed by the application for further processing or for long term storage.
Surround sound algorithms are known in the art. These algorithms extract, from two stereo channels (Right and Left), one or more additional channels. The new channels contain the out of phase or ambience information from the original two channels. This ambience information can be obtained by deriving the difference in the signal content between the right and left channels in a stereo system. This ambience information can either be fed through a single rear channel to a single speaker or, to spread the information across the full rear of the sound field, be fed to two rear speakers through two rear channels, with one channel being 180 degrees out of phase with the other.
For example, in a two rear channel implementation, the rear left and rear right channels are produced as follows:
Rear Left=Front Left-Front Right PA1 Rear Right=Front Right-Front Left.
Alternatives, or additional channels, can be used, For example, in one variation of surround sound called concert mode, the signal provided to the rear speaker or speakers can be obtained using the formula Right+Left.
Yet another variation uses a centre front channel obtained according to the formula Right+Left, with the rear channel(s) using the difference information as described previously.
Similarly, surround sound algorithms for encoding multiple channel digital audio data for two channel recording are known in the art.
There exists a need for a simple mechanism for adding surround sound capability to a computer system which is already stereo enabled.